1. Field of the Invention
The present invention relates to a communication apparatus and method between distributed objects, and more particularly to an apparatus for and method of creating and using a characteristic software bus depending on a communication pattern of correlated application objects upon communication between the correlated application objects in a distributed environment.
2. Description of the Related Art
A conventional Berkeley socket communication mechanism which is a method used in an initially distributed computing environment is now widely used in a field of a network programing.
Such a socket communication mechanism basically provides an Application Programing Interface (hereinbelow referred to as xe2x80x9cAPIxe2x80x9d) which allows a distributed application program to be written by using a subordinate transport protocol such as TCP/IP protocol. This socket communication mechanism is also used as a communication interface of a transmission network supporting a high level communication service of a distributed platform kernel.
A socket refers to a network programing code for giving and taking request and responses of an application by using a subordinate transport protocol, but not a practical communication protocol.
The characteristic of the socket communication mechanism is that a network I/O through the socket is treated like an I/O for a file. The difference between the network I/O and file I/O is that the network I/O uses a socket descriptor and conceals concrete details for establishing connection a network by using a subordinate transport protocol through provision of an Application Programing Interface (API) from an user.
The distributed application written by using the above-mentioned conventional socket communication mechanism is written in such a fashion that it depends on the subordinate network protocol. Thus, the development of a socket-based distributed application involves following three disadvantages:
First, an application program code and a network transport code should be written according to a network transport protocol, respectively.
Second, during the development of the distributed application, network programing overheads according to an address or a call code for use of a process, etc. are great.
Third, if hosts have different data representation methods upon exchanging data among themselves, transmission of data becomes complex.
Meanwhile, in addition to the socket communication mechanism there is a communication method which is called a Remote Procedure Call (herein below referred to as xe2x80x9cRPCxe2x80x9d). The RPC refers to a communication technique which provides an application developer with transparency so that a call request for a remote system is treated like a call request for a local procedure.
The RPC allows communication between processes by borrowing a form of a conventional procedure call, and that a client calls a remote procedure is called a request and that a server returns as a result of the request call from the client is called a reply. In order to conserve representation and meaning of data in the course of exchanging the request and response messages, the RPC mechanism has a data representation standard for changing a parameter and a result of a procedure into a standardized form through a transmission network except for a request and response exchanging protocol.
The main characteristic of the RPC communication method is that all the network code portions are hidden in a stub procedure so that both a client and a server can be freed from details (unity of a socket, order of byte) of networking.
However, in a case where RPC-based distributed applications are developed, various particulars such as parameter transmitting method, a binding process, transport protocol, data representation, performance, security matters, etc. should be taken into consideration, unlike the local call. The RPC-based distributed applications have another problem of that, since they have been developed in such a fashion that they are dependent on a specific network interface, a transmission interface code should be corrected along with the development of new network transport technology.
There is also a communication method between distributed objects, which is a communication mechanism adapted to support a transparent interaction between objects for a subordinate environment in a distributed environment consisting of different types of computers. In the RPC communication method, process of a service is accomplished in another system after transferring the service to that system through a functional procedure orientation, whereas in the communication method between distributed objects, a service is supported by calling a method defined through an interface of an object encapsulating data and a method.
The use of a service of a remote object through the communication method between distributed objects requires only calling of a method defined through an interface of a server object thereof. A subordinate structure supporting the communication between distributed objects like in a case of the RPC communication method conceals details associated with call of a remote method so that only knowledge of interface of an object enables communication with any object. For the purpose of this, in definition of the object interface to be independent of environment and technology for implementation, it is required to use Interface Definition Language (IDL).
The IDL refers to an interface description language used independent of a programing language but not the programing language. Accordingly, the IDL is an indispensable element which overcomes heterogeneity of a network, an OS (operating System), a programming language and provides an identical interface type to all objects. All objects in a communication environment of distributed objects have an interface defined by IDL, and definition of each interface indicates a set of operations which are services performed through use of the interface.
In a Common Object Request Broker Architecture (hereinbelow, referred to as xe2x80x9cCORBAxe2x80x9d) i.e., a standard of the distributed objects-between-communication method used most widely currently, request and response messages exchanged between objects are transmitted through an Object Request Broker (hereinbelow, referred to as xe2x80x9cORBxe2x80x9d). Such a distributed objects-between-communication mechanism is called an object bus or a software bus. A client object in the CORBA uses the software bus by means of a static or dynamic interface call method through a stub automatically produced by a compiling process in the IDL.
However, since such a conventional distributed objects-between-communication method provides an unlimited communication which uses a single communication mechanism employing the ORB, it is impossible to effectively provide a distinct appropriate communication service depending on what kind an application is. In addition, such a conventional distributed objects-between-communication method has an insufficient process function for successive media, and does not support a variety of constructions for communication and types of communication in view of structure.
Therefore, the present invention has been made in view of the above-mentioned problems, and it is an object of the present invention to provide a communication apparatus and method between distributed objects in which characteristic software buses are used depending on a communication pattern of correlated application objects upon communication between the correlated application objects in a distributed environment.
It is another object of the invention to provide a communication apparatus and method between distributed objects in which free creation and operation of diverse communication patterns are supported so that communication relations between objects are dynamically managed and formed.
It is another object of the invention to provide a communication apparatus and method between distributed objects in which simplicity of the development of an application and increase in capacity of management can be promoted.
According to an aspect of the present invention, there is provided a communication apparatus between distributed objects comprising:
a plurality of separate software buses adapted to determine whether or not a communication service of which function and property are provided in a distributed platform;
a platform administrator adapted to build and to administrate a communication architecture in the distributed platform;
a bus manager adapted to manage both a standard of types of the plurality of software buses and a bus object instance in the distributed platform by a strategic plan and instruction of the platform administrator;
a bus trader adapted to provide a trade function through an interaction with the bus manager, and a client object and a server object of an application level;
an object trader adapted to allow the client to dynamically find an appropriate server;
a repository adapted to provide a function which stores persistently instance information and various types of the plurality of software buses;
a bus adapter adapted to provide the client and server objects with an application programing interface (API) associated with a bus binding process for use of the distributed platform and adapted to perform a necessary trade and the bus binding process through an interaction with the bus trader and plurality of buses; and
a bus factory adapted to create a bus object coinciding with a standard type of the plurality of software buses.
According to another aspect of the present invention, there is also provided a communication method between distributed objects, comprising the steps of:
allowing a client to acquire both an identifier of a software bus and a reference of an object providing a service requested by the client;
binding the client to a desired software bus for a request of a call by the client;
allowing the client to request a service to the server through the software bus bound to the client;
allowing the server to register an object and the server to acquire a reference of a bus object created on the basis of a signature and a semantic property of interfaces which the server wants to provide;
binding the server to bus objects which the server wants to use by using the reference acquired in the preceding step;
allowing the server to receive parameters of the request and perform an implementation method thereof when a request of the service by the client is transmitted to the server through the software bus and to load an associated software bus with a return result of the implementation method if there is the return result of the implementation method; and
allowing the client to receive a result for the request by the client object through the software bus.